
interface Node {
    id: string;
    pid: string;
    [key: string]: any;  // 允许其他属性
    children?: Node[];  // 可选的 children 属性
}
// 定义树结构的类型
type Tree = Node[];
function buildTree(items:Node[]) :Tree{  
    // 创建一个映射，用于快速查找节点  
    const idMap: { [key: string]: Node }  = {};  
    for (const item of items) {  
        idMap[item.id] = {...item, children: []};  
    }  
  
    // 构建树  
    const tree:Tree= [];  
    for (const item of items) {  
        if (item.pid === '0') {  
            // 顶级节点直接添加到树中  
            tree.push(idMap[item.id]);  
        } else {  
            // 查找父节点，并将当前节点添加到父节点的 children 数组中  
            if (idMap[item.pid]) {  
                idMap[item.pid].children!.push(idMap[item.id]);  
            }  
        }  
    }  
  
    return tree;  
}  

export default buildTree;